/**
 * 封装新闻相关API接口
 */
import request from '../utils/request'

/**
 * 获取频道新闻列表
 * @param {*} channel_id 频道
 * @param {*} timestamp（page_no） 分页参数
 * @param {*} with_top （0 ｜1）是否返回置顶新闻
 */
// eslint-disable-next-line camelcase
export function aritcles (channel_id, timestamp, with_top = 1) {
  return request.get('articles', {
    params: { channel_id, timestamp, with_top }
  })
}

/**
 * 对文章不喜欢
 * @param {*} target 文章ID
 */
export function dislikeArticle (target) {
  return request.post('article/dislikes', {
    target
  })
}

/**
 * 举报文章
 * @param {*} target 文章ID
 * @param {*} type 举报类型 （ 0-其他问题，1-标题夸张，2-低俗色情，3-错别字多，4-旧闻重复，5-广告软文，6-内容不实，7-涉嫌违法犯罪，8-侵权'）
 */
export function report (target, type) {
  return request.post('article/reports', {
    target, type
  })
}

/**
 * 联想补全接口
 * @param {*} q 关键词前缀
 */
export function suggest (q) {
  return request.get('suggestion', {
    params: { q }
  })
}

/**
 * 搜索文章
 * @param {*} page 页码
 * @param {*} per_page 每页条数
 * @param {*} q 搜索关键字
 */
// eslint-disable-next-line camelcase
export function searchArticles ({ page = 1, per_page = 20, q }) {
  return request.get('search', {
    params: {
      page,
      per_page,
      q
    }
  })
}

/**
 * 获取文章详情
 * @param {*} id 根据文章ID获取文章详情
 */
export function getDetailById (id) {
  return request.get(`articles/${id}`)
}

/**
 * 对文章不喜欢
 * @param {*} target 文章ID
 */
export function disLike (target) {
  return request.post('article/dislikes', {
    target
  })
}

/**
 * 取消对文章不喜欢
 * @param {*} target 文章ID
 */
export function unDisLike (target) {
  return request.delete(`article/dislikes/${target}`)
}

/**
 * 对文章点赞
 * @param {*} target 文章ID
 */
export function like (target) {
  return request.post('article/likings', {
    target
  })
}

/**
 * 取消对文章点赞
 * @param {*} target 文章ID
 */
export function unLike (target) {
  return request.delete(`article/likings/${target}`)
}

/**
 * 获取评论或回复(一个接口两用)
 * @param {String} type - a 查询文章的评论  c 查询评论的回复
 * @param {String} source - 如果查询评论是文章的ID  如果查询回复是评论的ID
 * @param {String} offset - 查询每一页数据的最后一个数据的ID，当作下一页的偏移量=》pageNo
 * @param {String} limit - 每页显示多少条 => pageSize
 */
export function getComments ({ type, source, offset, limit = 10 }) {
  return request.get('comments', {
    params: {
      type, source, offset, limit
    }
  })
}

/**
 * 提交评论或者回复（一个接口两用）
 * @param {String} target - 做评论的时候：文章ID  做回复的时候：评论ID
 * @param {String} content - 评论内容
 * @param {String} artId - 文章id，对评论内容发表回复时，需要传递此参数，表明所属文章id。对文章进行评论，不要传此参数
 */
export const commentOrReply = (target, content, art_id = null) => {
  return request.post('comments', { target, content, art_id })
}
